package com.wlyuan.index.api;

import com.alibaba.fastjson.JSONObject;
import com.wlyuan.index.api.dto.QuotationIndexDTO;
import com.wlyuan.index.api.dto.waybill.*;
import com.wlyuan.index.api.vo.WaybillIndexScrollVO;
import com.wlyuan.index.api.vo.WaybillIndexSumVO;
import com.wlyuan.index.api.vo.WaybillIndexVO;
import com.wlyuan.tools.Page;

import java.util.List;

/**
 * @author yuanjie
 */
public interface IWaybillIndexService {
    void index(Long waybillId);

    void index(List<Long> waybillIds);

    void index(WaybillIndexDTO waybill);

    void index(BalanceIndexDTO balance);

    void index(QuotationIndexDTO quotation);

    void index(BillIndexDTO bill);

    void reindex(Long waybillId);

    void reindex(WaybillReindexDTO reindex);

    void reindexAll(List<Long> waybillIds);

    void reindexAll(WaybillReindexAllDTO reindex);

    void remove(Long waybillId);

    Page<WaybillIndexVO> search(WaybillIndexFilterDTO filter);

    Page<WaybillIndexVO> search(WaybillIndexSearchDTO search);

    WaybillIndexScrollVO scroll(WaybillIndexFilterDTO filter);

    WaybillIndexScrollVO scroll(String scrollId);

    WaybillIndexSumVO searchSum(WaybillIndexFilterDTO filter);

    WaybillIndexVO getIndexById(Long waybillId);

    JSONObject getWaybillById(Long waybillId);

    JSONObject insight(Long waybillId);

    JSONObject diffs();
}
